package offer;

import java.util.ArrayList;

/**
 * @author cyt
 * @create 2020-05-31 22:54
 */
public class T41 {

    public static void main(String[] args) {

    }

/*    输入一颗二叉树的根节点和一个整数，打印出二叉树中结点值的和为输入整数的所有路径。
    路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。*/

    int sum = 0;

    private ArrayList<ArrayList<Integer>> ans = new ArrayList<ArrayList<Integer>>();
    private ArrayList<Integer> list = new ArrayList<Integer>();

    public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) {
        if(root == null) return ans;
        list.add(root.val);
        target = target - root.val;
        if(target == 0 && root.right ==null && root.left == null)
            ans.add(new ArrayList<>(list));
        FindPath(root.left, target);
        FindPath(root.right, target);
        list.remove(list.size()- 1);
        return ans;
    }
}
